#pragma once

#include "../SGD Wrappers/SGD_Geometry.h"

class IEntity
{
public:
	IEntity() = default;
	virtual ~IEntity() = default;

	//Interface
	virtual void Update(float elapsedTime) = 0;
	virtual void Render() = 0;
	virtual const SGD::Rectangle GetRect() const = 0;
	virtual int GetType() const = 0;
	virtual void HandleCollision(const IEntity* other) = 0;

	//Reference counting
	virtual void AddRef() = 0;
	virtual void Release() = 0;
};

